package com.netty.bytebuf;

import io.netty.buffer.ByteBuf;
import io.netty.buffer.PooledByteBufAllocator;

/**
 * @author renyitong
 * @version 1.0.0
 * @createTime 2023年08月10日
 * @Description
 */
public class PoolByteBufferDemo {


    public static void main(String[] args) {
        PooledByteBufAllocator allocator = PooledByteBufAllocator.DEFAULT;
        ByteBuf buf = allocator.directBuffer(10); // 申请一个容量为10的直接缓冲区
        buf.writeChar('T');  // 随便操作操作
        System.out.println(buf.readChar());
        buf.release(); // 释放此缓冲区的空间

        // 我们再次申请一个同等大小的缓冲区时，会直接得到之前已经申请好的缓冲区
        // todo PooledByteBufAllocator实际上是将 ByteBuf 实例放入池中在进行复用。
        ByteBuf buf2 = allocator.directBuffer(10);
        System.out.println(buf == buf2);
        buf2.release();
    }


}
